package com.ybl.store.backend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ybl.store.backend.dao.entity.ClerkDO;
import com.ybl.store.backend.dto.req.ClerkSaveReqDTO;
import com.ybl.store.backend.dto.req.ClerkUpdateReqDTO;
import com.ybl.store.backend.dto.resp.ClerkPageRespDTO;
import com.ybl.store.backend.dto.resp.ClerkRealNameRespDTO;
import com.ybl.store.backend.dto.resp.ClerkSaveRespDTO;
import com.ybl.store.backend.dto.resp.ListRespDTO;

public interface ClerkService extends IService<ClerkDO> {

    /**
     * 新增店员
     *
     * @param requestParam 新增店员请求参数
     * @return 新增店员响应参数
     */
    ClerkSaveRespDTO saveClerk(ClerkSaveReqDTO requestParam);

    /**
     * 删除店员
     *
     * @param id 店员 id
     */
    void deleteClerkById(Long id);

    /**
     * 修改店员
     *
     * @param requestParam 修改店员请求参数
     */
    void updateClerk(ClerkUpdateReqDTO requestParam);

    /**
     * 分页查询店员
     *
     * @param pn 页码
     * @param ps 每页条目数
     * @param managerId 店长 id
     * @param realName 真实姓名
     * @return 分页查询店员响应参数
     */
    ClerkPageRespDTO pageClerk(Integer pn, Integer ps, Long managerId, String realName);

    /**
     * 查询店员名列表
     *
     * @param managerId 店长 id
     * @return 查询店员名列表响应参数
     */
    ListRespDTO<ClerkRealNameRespDTO> listClerkRealName(Long managerId);
}
